package unit;


import java.io.IOException;
import java.io.File;
import javax.servlet.ServletContext;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;



/**
 * @ClassName: File
 * @Description: 关于图片的操作
 * @author 唐泽
 * @date 2017年8月23日
 */

public class FileUtil{
	private static ServletContext context=ServletActionContext.getServletContext();  
	
	/**
	 * @Description: 添加文件，并返回该图片存放的路径
	 * @param upload
	 * @param uploadFileName
	 * @return
	 * @author lianliang 
	 * @date 2017年12月19日
	 */
	public static String add(File upload,String uploadFileName){
		//文件的绝对路径
		String targetDirectory = context.getRealPath("/upload");  
		
		//文件后缀
		String targetFileName = uploadFileName.substring(uploadFileName.lastIndexOf("."));  
		//文件前缀
	    String name = uploadFileName.substring(0,uploadFileName.lastIndexOf("."));  
	    //文件名组装：UUID.后缀
		targetFileName = UidUtil.UID()+"_"+name+targetFileName; 
		
		System.out.println("文件绝对路径"+targetDirectory);
		System.out.println("文件名组装"+targetFileName);
		//上传文件
        File target = new File(targetDirectory, targetFileName);
        try {
			FileUtils.copyFile(upload, target);
		} catch (IOException e) {
			System.out.println("保存出错");
		}
        String path = "upload/mapdepot/" + targetFileName;   //保存文件的存放路径
        
		return path;
		
	}
	
	/**
	 * @Description: 文件删除
	 * @param pictureAddress
	 * @author lianliang
	 * @date 2017年12月19日
	 */
	public static void delete(String fileAddress){
		//文件的绝对路径
		String targetDirectory = context.getRealPath("");  
		//文件的相对路径
		String path = targetDirectory + fileAddress;
		
		File file = new File(path);
		  //刪除
	       if(!file.isDirectory()){
	    	   //文件删除
	           file.delete();
	           System.out.println("删除成功");
	       }else if(file.isDirectory()){
	    	   System.out.println("删除失败");
	       }
	}

	public static ServletContext getContext() {
		return context;
	}

	public static void setContext(ServletContext context) {
		FileUtil.context = context;
	}
	
}
